From 6fd0b1574e9dd6ec38cdf38882d9d56fa7e47946 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 4 May 2016 16:20:05 +0100 Subject: [PATCH] libxl: Do not trust backend for nic in devid_to_device libxl_devid_to_device_nic should read the information it needs from the /libxl/device path, not the backend. This is part of XSA-178. Signed-off-by: Ian Jackson Reviewed-by: Wei Liu --- tools/libxl/libxl.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 34791d424e..60aa504aba 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -3636,7 +3636,7 @@ int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t domid, int devid, libxl_device_nic *nic) { GC_INIT(ctx); - char *libxl_dom_path, *path; + char *libxl_dom_path, *libxl_path; int rc = ERROR_FAIL; libxl_device_nic_init(nic); @@ -3644,13 +3644,9 @@ int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t domid, if (!libxl_dom_path) goto out; - path = libxl__xs_read(gc, XBT_NULL, - GCSPRINTF("%s/device/vif/%d/backend", libxl_dom_path, - devid)); - if (!path) - goto out; + libxl_path = GCSPRINTF("%s/device/vif/%d", libxl_dom_path, devid); - rc = libxl__device_nic_from_xenstore(gc, path, nic); + rc = libxl__device_nic_from_xenstore(gc, libxl_path, nic); if (rc) goto out; rc = 0; -- 2.30.2